-- 根据日期获取我的预约情况
redis.log(redis.LOG_DEBUG,'======================')
redis.log(redis.LOG_DEBUG,KEYS[1])
redis.log(redis.LOG_DEBUG,KEYS[2])
redis.log(redis.LOG_DEBUG,ARGV[1])
local user_id=KEYS[1]
local seat_id=KEYS[2]
local new_record=ARGV[1]

local module={}
local my_record=redis.call('get',user_id)

function module.replace(str,index)
    local len =str:len()
    local res=''

    if( index==1 )
    then
       res='1' .. str:sub(2)
    elseif(index==len )
    then
       res=str:sub(1,len-1) .. '1'
    else
       res=str:sub(1,index-1) .. '1' .. str:sub(index+1)
    end
    return res
end
-- 判断自己此时间段有预约
for i=1,my_record:len() do
    if(new_record:sub(i,i)=='1')
    then
        if(my_record:sub(i,i)== new_record:sub(i,i))
        then
            return 0
        end
        my_record=module.replace(my_record,i)
    end
end

-- -- 座位预约情况
local seat_record=redis.call('get',seat_id)
for i=1,seat_record:len() do
    if(new_record:sub(i,i)=='1')
    then
        if(seat_record:sub(i,i)== new_record:sub(i,i))
        then
            return 0
        end
        seat_record=module.replace(seat_record,i)
    end
end

redis.call('set',user_id,my_record)
redis.call('set',seat_id,seat_record)

return 1